/* 
给你一个长度为 n 的整数数组，每次操作将会使 n - 1 个元素增加 1 。返回让数组所有元素相等的最小操作次数。

示例：
输入：nums = [1,2,3]

输出：3

解释：
只需要3次操作（注意每次操作会增加两个元素的值）：
[1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]

[1,2,3,4] => [2,3,4,4] => [3,4,5,4] => [4,5,5,5]=>[5,6,6,5]=>[6,7,6,6] => [7,7,7,7]
*/

/* 
思路1: 每次操作n-1个数加1，可以视为对一个数减1(相对变化)，即找出数组中最小数，每个数减小至这个数的次数和即为总操作次数

*/

/**
 * @param {number[]} nums
 * @return {number}
 */
 var minMoves = function(nums) {
    //  拿到最小值
    const minNum=Math.min(...nums)
    let res=0
    // 每一项与最小值差的累加和就是操作次数
    for(num of nums){
        res+=num-minNum
    }
    return res
};
// 运行

let nums = [1,2,3,4]
console.log(minMoves(nums));